package bank;

import java.util.HashMap;

public class _13RomanToInt {
    public static int romanToInt(String s) {
        /*首先建立一个HashMap来映射符号和值，然后对字符串从左到右来，
        如果当前字符代表的值不小于其右边，就加上该值；否则就减去该值。
        以此类推到最左边的数，最终得到的结果即是答案*/
        HashMap<Character,Integer> romanToInt = new HashMap<>(7);
        romanToInt.put('I',1);
        romanToInt.put('V',5);
        romanToInt.put('X',10);
        romanToInt.put('L',50);
        romanToInt.put('C',100);
        romanToInt.put('D',500);
        romanToInt.put('M',1000);
        int iniVal = 0,len = s.length();
        char[] chars = s.toCharArray();
        for(int i = 0;i < len-1;i++){
            if(romanToInt.get(chars[i]) < romanToInt.get(chars[i+1])){
                iniVal -= romanToInt.get(chars[i]);
            }else {
                iniVal += romanToInt.get(chars[i]);
            }
        }
        iniVal += romanToInt.get(chars[len-1]);
        return iniVal;
    }
}
